In modern signal processing systems or in the development thereof, a need often arises to identify the presence and location of distortions appearing in a signal of interest. These distortions may result from signal corrupting effects external to the system; for example, processing errors in other subsystems, errors caused by signal generators, or transient effects on the transmission channel. Also, signal errors manifested as distortions may be caused internally to the signal processing system, whether by hardware or software problems. Systems ill equipped to handle erroneous signal distortions may process the errors as part of the signal, resulting in undesired system output. Furthermore, subsystems as functional blocks of more complex systems that internally corrupt a signal may cause errors to propagate through downstream processing blocks of the greater system.
For illustrative purposes, the problems of characterizing signals for distortions are discussed in the context of commonly-used digital signal processing (DSP) systems. It should be recognized, however, that similar problems and their effects are also prevalent in the various types of analog as well as discrete-signal systems. In digital systems, signal discontinuities may be caused by errors in signal acquisition systems, such as in sampling or quantization functions. Moreover, errors may be introduced by the signal processing functions. For example, commonly-utilized array processor algorithms operate on blocks of N samples to improve the efficiency of the underlying hardware. Block programming errors can result in the system's mishandling of the data blocks, giving rise to problems such as duplication of samples, dropped samples, and other so-called artifacts.
In addressing these concerns, system designers and developers conduct testing of the systems for various types of errors. The present state of the art has no simple, reliable and widely applicable method available to test for the presence of intermittent errors in signals. Known methods are generally ad-hoc, and either heuristic and labor-intensive, or complex and resource-intensive, requiring an understanding of complex signal processing techniques.
One methodology involves continuously monitoring system output for errors using laboratory instruments. Being manual and slow in nature, this method is inherently unreliable, expensive, and limited in its effectiveness to identification of repeating events, such as periodic glitches in an observable periodic signal's waveform. Other methods involve the use of signal analysis algorithms, such as spectral analysis or autocorrelation functions to detect repeated errors and extraneous harmonics. These techniques may be automated, but are relatively complex to implement. When realized in a system, they require a significant amount of system resources, such as memory and processing capacity. As with the manual methods, statistical tools, such as autocorrelation, are not effective for single, isolated errors. Methods involving comparing an erroneous signal with its uncorrupted version require processing more than one signal, and are consequently system resource-intensive. Simpler methods, such as sampling with peak detection, fail to detect relatively small signal distortions and repeated or skipped samples.